﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Csla;
using System.Deployment.Application;

namespace ErickOrlando.Utilidades.Seguridad
{
    /// <summary>
    /// Contiene Funciones para la autenticacion del Usuario
    /// </summary>
    public static class Logeo
    {

        /// <summary>
        /// Devuelve el Usuario Actual autenticado
        /// </summary>
        public static string UsuarioActual()
        {
            if (ApplicationContext.AuthenticationType == "Windows")
            {
                return Environment.UserName;
            }
            else
            {
                return ApplicationContext.User.Identity.Name.Trim().ToLower().Substring(0, 10);
            }
        }

        /// <summary>
        /// Devuelve la información del Nombre de la Placa
        /// de la PC donde se ejecuta la aplicación
        /// </summary>
        public static string NombrePlaca()
        {
            if (ApplicationContext.GlobalContext["Placa"] != null)
            {
                return ApplicationContext.GlobalContext["Placa"].ToString().Substring(0,10);
            }
            else
            {
                return Environment.MachineName.Substring(0,10);
            }
        }

        /// <summary>
        /// Comprueba si hay actualizaciones en una aplicación ClickOnce
        /// </summary>
        /// <remarks>Erick Orlando © 2011</remarks>
        public static bool ActualizarAplicacion()
        {

            if (!ApplicationDeployment.IsNetworkDeployed)
                return false;
            if (ApplicationDeployment.CurrentDeployment.CheckForUpdate())
                return ApplicationDeployment.CurrentDeployment.Update();
            else
                throw new ApplicationException("No hay actualizaciones disponibles");

        }

    }
}
